Double-buffered or swap-chain based OS graphics interfaces use a combination of software and/or hardware-accelerated compositing and frame buffer swap chains to produce a final frame buffer to be displayed. A swap chain is a collection of buffers that are used for displaying frames to the user. Each time an application presents a new frame for display, the next buffer in the swap chain takes the place of the currently displayed buffer (the screen/front buffer). This process is called swapping or flipping. The process of moving the back buffer to the front buffer is called surface flipping. Because the graphics processor simply uses a pointer to a surface to represent the front buffer, a simple pointer change is all that is needed to set a back buffer as the front buffer. For each buffer flip, the entire buffer is passed to the display controller for outputting or display.
However, in many instances, a large portion of the screen does not change between successive frames. Thus, for this large portion, the reading, processing, and publishing/outputting of the frame results in no change in what is presented on the display device (panel). Thus, a portion of the processing capacity and energy (power) expended in providing a frame to a display device fails to result in a perceptible reward for that effort.
The Video Electronics Standards Association (VESA) Digital Packet Video Link (DVPL) standard promulgated in 2004 mentions the possibility of having partial screen refreshes where unchanged portions do not refresh, but the standard provides no details or explanation as to how this would be achieved.
Accordingly, there exists a need for an improved method and apparatus that provides for transmission of new frame data to a display device without requiring transmission of a full frame.